package com.zzq.gmall.product.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzq.gmall.model.product.SpuInfo;
import com.zzq.gmall.model.product.SpuSaleAttr;
import com.zzq.gmall.model.product.SpuSaleAttrValue;
import com.zzq.gmall.product.mapper.SpuImageMapper;
import com.zzq.gmall.product.mapper.SpuInfoMapper;
import com.zzq.gmall.product.mapper.SpuSaleAttrMapper;
import com.zzq.gmall.product.mapper.SpuSaleAttrValueMapper;
import com.zzq.gmall.product.service.SpuInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * 幼儿猿大班
 * 2023/2/16
 */
@Service
public class SpuInfoServiceImpl extends ServiceImpl<SpuInfoMapper,SpuInfo> implements SpuInfoService {


    @Autowired
    SpuInfoMapper spuInfoMapper;

    @Autowired
    SpuImageMapper spuImageMapper;

    @Autowired
    SpuSaleAttrMapper spuSaleAttrMapper;


    @Autowired
    SpuSaleAttrValueMapper spuSaleAttrValueMapper;


    @Transactional
    @Override
    public void saveSpuInfo(SpuInfo spuInfo) {

        // 保存spuInfo信息
        spuInfoMapper.insert(spuInfo);
        // 获取刚插入的spuInfo的id

        // 保存spuImage
        Long spuInfoId = spuInfo.getId();
        //for (SpuImage spuImage : spuInfo.getSpuImageList()) {
         //   spuImage.setSpuId(spuInfoId);
         //   spuImageMapper.insert(spuImage);
       // }

        for (SpuSaleAttr spuSaleAttr : spuInfo.getSpuSaleAttrList()) {
            spuSaleAttr.setSpuId(spuInfoId);
            spuSaleAttrMapper.insert(spuSaleAttr);


            //保存spuSaleAttr信息
            for (SpuSaleAttrValue spuSaleAttrValue : spuSaleAttr.getSpuSaleAttrValueList()) {
                spuSaleAttrValue.setSpuId(spuInfoId);
                spuSaleAttrValue.setId(spuSaleAttr.getId());
                spuSaleAttrValue.setSaleAttrName(spuSaleAttr.getSaleAttrName());
                spuSaleAttrValueMapper.insertspuSaleAttrValue(spuSaleAttrValue);  //不能直接用insert,insert默认自增
                                                                                  //要插入已有的id，必须写手写sql
            }
        }

    }
}
